package main

import (
	"fmt"
	"os"
	"strings"
)

// 应用并删除环境（新增核心功能）
func handlePop(args []string) {
	if len(args) == 0 {
		fmt.Println("请指定环境名称")
		fmt.Println("用法: genv pop <环境名>")
		os.Exit(1)
	}

	targetEnv := args[0]
	fmt.Println("正在准备干净的工作区...")
	if err := hardReset(); err != nil {
		fmt.Printf("工作区清理失败: %v\n", err)
		os.Exit(1)
	}

	output, err := runGit("stash", "list")
	if err != nil {
		fmt.Printf("环境查询失败: %v\n", err)
		return
	}

	var targetRef string
	lines := strings.Split(output, "\n")
	for _, line := range lines {
		parts := strings.SplitN(line, ": ", 3)
		if len(parts) >= 3 && parts[2] == targetEnv {
			targetRef = strings.Split(parts[0], " ")[0]
			break // 只处理第一个匹配项（最新）
		}
	}

	if targetRef == "" {
		fmt.Printf("未找到环境: %s\n", targetEnv)
		return
	}

	// 应用配置
	if _, err := runGit("stash", "apply", targetRef); err != nil {
		fmt.Printf("环境应用失败: %v\n", err)
		return
	}

	// 删除配置
	if _, err := runGit("stash", "drop", targetRef); err != nil {
		fmt.Printf("环境删除失败: %v\n", err)
		return
	}

	fmt.Printf("已应用并移除环境: %s\n", targetEnv)
}
